Integrated distance-computation/reference-vector-memory module for microcomputer speech recognizer

ABSTRACT

The distance computation represents a central, constantly recurrent task in sample and speech recognition. It is used in speech recognition as a degree of similarity between a part of a speech utterance and a speech reference. In picture processing and sample recognition, it is used for data compression (MPEG). The distance computation requires the longest computation time so that a reduction of the computation time results in a considerable efficiency improvement. A reduction of the computation time is achieved by the integration of the distance computation in a memory module ( 1 ) in which particularly the reference data are stored. Due to this integration, the other components ( 2, 3, 4 ) of the overall system are relieved of this constantly recurrent task and are available for more complex processes in this period of time. This integration makes the distance computation essentially shorter because the communication between memory sections and computation unit takes place directly without utilizing a bus system.

[0001] The invention relates to a speech recognition computer comprising a microprocessor, input and output interfaces and a data bus, in which incoming test signals converted into a digital form are subdivided into segments, and test vectors are assigned to properties of the segments, for which test vectors a distance with reference to reference vectors is computed.

[0002] The distance computation is used in speech recognition as a degree of similarity between a part of a speech utterance and a speech reference and represents a central, constantly recurrent task in sample and speech recognition. It requires the longest computation time so that a reduction of the computation time yields a considerable efficiency improvement. In picture processing and sample recognition, it is used for data compression (MPEG).

[0003] Up to now, additional, special hardware modules have been used for speech recognition. These modules are used for converting the incoming analog speech signals into digital signals, and for feature extraction in which the characteristic properties of the segmented incoming digitized speech signal are assigned to corresponding vector components. For the test vectors thus formed, the distance to the reference vectors is computed by means of a digital signal processor.

[0004] On the other hand, there are software-based speech recognition systems in which the recognition process is performed without any special hardware, i.e. with the system components of a universal computer. The incoming test signals are digitized on, for example, the sound card. The elaborate distance computation is performed on the main processor of the system. This presupposes the use of a very powerful processor and also requires a considerable part of its computation power which is then no longer available for other processes. Generally, the recognition of the spoken text is, however, realized in an offline mode because a sufficiently powerful processor is not often available.

[0005] It is an object of the invention to provide a (universal) arrangement which allows a faster computation of the distances.

[0006] This object is solved in that a distance computer and a memory module are provided which are integrated on a common module having at least a data terminal for supplying test vectors and reference vectors and for providing computed distances.

[0007] This universal computer system according to the invention allows speech recognition with a conventional microprocessor and its customary peripheral equipment by combination with a memory and an integrated distance computer. The microprocessor is thereby relieved from the elaborate distance computation and its computing power is available for other processes.

[0008] To this end, analog data are applied to the computer system via the input and output interfaces, which data, after having been prepared for distance computation, are applied to the memory module with the integrated distance computer.

[0009] An additional advantage is the short communication path. Since the data to be compared are directly supplied from the relevant memories to the distance computer, no valuable computation time is lost. The system transfers the test vectors and receives the computed distances. Since the distance computation is locally performed within a memory module, all components of the system, with the exception of the relevant memory module, are available to the system processor for other processes.

[0010] Moreover, this integration does not require any data transfers via an external data or address bus for performing the distance computation, i.e. the memory accesses are limited to the internal local memory ranges so that the distance computation is performed directly and within a significantly shorter time. The reference data are loaded into the reference data memory before or at least not during a recognition process step. Also a possible update of this reference data file is performed at non-critical points of time.

[0011] A further advantage of this computer system is the possible reconstruction of a computer conceived for normal purposes. A conventional memory module is exchanged for a memory module with an integrated distance computer. This enables the computer system to perform speech recognition processes without any serious limitation of its efficiency.

[0012] The integration of a distance computer in a memory module involves further advantages of the optimized memory manufacturing process. Memory modules are produced as logic modules with a higher density of components, resulting in a more optimal utilization of space.

[0013] The effectiveness of this integration will be shown by way of an example. In a typical case, the distances of a test vector to, for example, 2000 reference vectors are required every 16 ms. Approximately a data rate of at least 3 Mbyte per second is required for this purpose. A standard signal processor with a clock frequency of 20 MHz would need approximately 12 ms for this purpose. A standard microprocessor requires much more time for this purpose. By integrating the distance computation, this task, performed at the same clock frequency, is reduced to approximately one tenth, i.e. approximately 1.2 ms. The speed gain relates to the optimized addressing, the compact data storage and the shorter data path.

[0014] These and other aspects of the invention are apparent from and will be elucidated with reference to the embodiments described hereinafter.

[0015] In the drawings:

[0016]FIG. 1 shows the integration of the distance computation in a computer system,

[0017]FIG. 2 shows the formation of the distance between reference vectors and test vectors,

[0018]FIG. 3 shows the internal structure of a memory with integrated distance computation.

[0019]FIG. 1 shows the principal structure of a computer system. The Figure shows the memory with integrated distance computation 1, the system processor 2 and all further required or optional components as unit 3. The connections between said elements 1 to 3 are established via the data or address bus 4. An initialization of the distance computation 1 is performed via control lines 5. Incoming test signals are applied via interfaces in unit 3 to the overall system. These signals are converted in accordance with the type of signal and subdivided into segments. Components of a test vector are assigned to the different properties of a segment. A test vector is applied to the memory with integrated distance computation 1 via the bus 4. The distance computation between this test vector and at least a part of the reference data is performed in this memory with integrated distance computation 1, and the computed distances are applied for further processing to the overall system via the bus 4.

[0020]FIG. 2 shows a test vector 21 consisting of a plurality of components k_(n). The reference vectors y₁ to y_(m) consist of the same number of components k_(n) as the test vector 21. The components k_(n) of these vectors comprise properties of the speech signal parts to be compared. The components k₁ to k_(n) of the test vector 21 are compared with the components k₁ to k_(n) of at least a part of the reference vectors y₁ to y_(m). For the distance computation, the partial distances r_(n) of the component values of the test vector 21 are formed with the corresponding component values of the considered reference vectors y₁ to y_(m). The computed partial distances r_(n) of the components k_(n) of a reference vector y₁ to y_(m) are directly included in a distance R_(ym) by way of summation. For forming the distance R_(ym), distance computations in accordance with, inter alia, Gauss or Laplace are fundamentally possible. This distance R_(ym) represents a degree of similarity of the reference vector y₁ to y_(m) with the test vector 21. The distances R_(y1) to R_(ym) are stored in a list 22, with the number of distances R_(ym) depending on the number of reference vectors y₁ to y_(m) which are compared with the test vector 21. FIG. 2 shows that a very large number of computations is required to compare the components k_(n) of the test vector 21 with the relevant components k_(n) of the reference vectors y₁ to y_(m). Additionally, the distance R_(ym) must be computed from the partial distances r_(n) for each reference vector y₁ to y_(m). A very long computing time is required for this large number of simple, constantly recurrent computations which, moreover, should be realized within a very short time.

[0021]FIG. 3 shows the internal structure of a memory module according to the invention. This memory module includes a reference memory 31 and a test memory 32 which are connected to a distance computer 34. This computer is coupled to a distance memory 33 which applies computed distances via the data output 42 and a driver 38 to the data terminal 39 and, via this connection, to a bus 4 (FIG. 1) to the system for further processing. Furthermore, this memory module comprises an address computer 36, address multiplexers 37 and a control unit 35.

[0022] Before a recognition process step, the reference memory is loaded with reference vectors via the data terminal 39. The test memory 32 receives the test vectors at the data input 43 also via the data terminal 39. The reference vectors to be compared and the relevant test vector are applied to the distance computer 34. In the distance computer 34, each reference vector and the test vector are compared with each other and the mutual distances between the components are formed. The distances between the compared vectors are stored in a distance memory 33.

[0023] The test memory 32 is implemented as a ring memory and is loaded with the test vector at the start of each distance computation by the system processor. The component to be currently compared is made available by means of a shifting process at the data output 45 of the test memory 32. Another possibility is to increment the current address of the component to be considered. The test memory has such a structure that, after a complete comparison of all components of the test vector with all components of a reference vector, the test vector is again available in its initial form in the test memory, or the current address is that of the first component of the test vector.

[0024] After a partial distance to the corresponding component of a reference vector is formed for each component of a test vector and a distance is formed from their combination, a subsequent reference vector is compared with the test vector. Both the reference memory 31 and the distance memory 33 are addressed via address multiplexers 37. The address multiplexers 37 apply the addresses, made available by the address computer 36, via address inputs 44 to the reference memory 31 and/or to the distance memory 33. The address for the distance memory can be most easily derived from the address for the reference memory by omitting the address lines required for addressing the individual vector components. The address multiplexers 37 enable the reference memory 31 and the distance memory 33 to be also addressed externally via the address terminal 40 which is connected to the external bus 4 (FIG. 1). The control unit 35 is initialized by the system via control lines 41 and takes over the control of the address multiplexers 37, the distance computer 34 and the test memory 32. After the distance computation has been performed, the control unit 35 indicates by means of the status line 46 to the system that the distances R_(ym) are available.

[0025] The reference memory 31 may also be loaded with reference vectors via an I²C interface. Via this double-wire terminal, the reference memory 31 may also be loaded with reference vectors in the off-line state, or the data file may be updated. The reference memory 31 may be implemented as an EEPROM so that the reference vectors need not be loaded whenever the memory is switched on. The reference vectors are not transferred to the reference memory 31 during a recognition process step. Thus, this loading process does not require any computation time during the recognition process step. After the relevant test vector has been loaded via the data terminal 39, the recognition process step starts, computing the distances between this test vector and the reference vectors loaded in the reference memory 31. The computed distances are read by the system from the distance memory 33 via the data terminal 39, and are further processed. 

1. A computer system for speech recognition, comprising a microprocessor (1), input and output interfaces (3) and a data bus (4), in which incoming test signals converted into a digital form are subdivided into segments, and test vectors (21) are assigned to properties of the segments, for which test vectors a distance (R_(ym)) with reference to reference vectors (y₁ to y_(m)) is computed, characterized in that a distance computer and a memory module (1) are provided which are integrated on a common module having at least a data terminal (39) for supplying test vectors (21) and reference vectors (y₁ to y_(m)) and for providing computed distances (R_(ym)).
 2. A system as claimed in claim 1, characterized in that the distance computer is integrated in a memory module.
 3. A system as claimed in claim 1, characterized in that the distance computer comprises a test memory (32) for storing the test vectors (21), which memory is implemented as a ring memory and whose contents circulate once during complete read-out of a reference vector (y₁ to y_(m)) from the reference memory (31).
 4. A system as claimed in claim 1, characterized in that the distance computer comprises a reference memory (31) for a plurality of reference vectors (y₁ to y_(m)), a test memory (32) for a test vector (21), a distance computer (34) which is coupled to the reference memory (31) and the test memory (32) so as to compute distances (R_(ym)) between reference vectors (y₁ to y_(m)) and test vectors (21), a distance memory (33) for storing the computed distances (R_(ym)) which are supplied via a data terminal (39) or bus (4), an address computer (36) for computing addresses at least for the reference memory (31) and the distance memory (33), a control unit (35) for communication with external input and output elements via control lines (41), and a status line (46) for controlling the address computer (36), the distance computer (34) and the test memory (32).
 5. A system as claimed in claim 4, characterized in that the memory module (1) has an address terminal (40), and in that the address terminal (40) is controlled by a control unit (35) and connected via address multiplexers (37) to an address input (44) of the distance memory (33) and/or the reference memory (31).
 6. A system as claimed in any one of claims 1 to 5, characterized in that the reference data memory (31) is implemented as an EEPROM and is loadable with new reference data in the form of reference vectors (y₁ to y_(m)). 